#pragma once

#include "types.hpp"
#include <cstdint>

namespace perf_boost {
    // Time utility functions
    uint32_t GetTime();
    uint64_t GetWowTimeMs();
    uintptr_t *GetLuaStatePtr();
    
    // Math/distance utility functions
    float fastApproxDistance(C3Vector &vec);
    int ApproximateDistanceBetween(const C3Vector &pos0, const C3Vector &pos1);
    
    // Game state utility functions
    bool IsPlayerInCity();
    int GetRaidMarkForGuid(uint64_t targetGUID);
    
    // Object management utility functions
    std::uint64_t ClntObjMgrGetActivePlayerGuid();
    uintptr_t *GetObjectPtr(std::uint64_t guid);
    uintptr_t *ClntObjMgrObjectPtr(OBJECT_TYPE_MASK typeMask, std::uint64_t guid);
}